# 定义一个函数【返回最大值】
def f1(fun ,num1, num2):
    return fun(num1 , num2)

#定义一个函数【最后返回两个值的和 &最大值】
def f2(fun ,num1 , num2):
    max_value = fun(num1 , num2)
    return num1+num2 , max_value

#定义一个函数,可以返回两个数的最大值
def get_max_val(num1 ,num2):
    max_val = num1 if num1 > num2 else num2
    return max_val

# print(f1(get_max_val , 10 , 20))
res , max_value = f2(get_max_val , 10 , 20)
#其实很简单 ， 就是将方法作为参数传递  达到调用的目的
# print(res , max_value)
print(f"res={res} , max_value={max_value}")
"""
问题分析：
其实问题分析就是思路 编程思想  写写还是很有必要的
1.f1和f2都有对两个数求最大值的需求
2.如果有更多的函数也有对两个数求最大值的需求,在每个函数都写一份相同代码会冗余,而且,不利于维护
3.解决方案,编写一个函数(该函数可以返回两个数的最大值)
3.将函数作为参数传递给f1 , f2 就非常棒了 -> 引出知识点:将函数作为参数传递
"""